Spiking neuron network (SNN) hardware has been demonstrated to be a promising alternative to traditional Von-Neumann architecture for processing real-world intelligent applications, such as to emulate intelligence and human recognition and cognitive activity. In an SNN, a digital representation of neurons interact with neighboring neurons over synapses connecting the neurons. When a postsynaptic neuron receives a weighted spike over a synapse from a firing presynaptic neuron, a membrane potential of the postsynaptic neuron is increased. When the membrane potential of a neuron reaches a threshold, then that neuron fires a spike across all the synapses in which it is a presynaptic neuron. The synapses have plasticity to adjust their gain/weight according to one or more adaptation rules. Some of the different rules to adjust the synapse weight are based on a timing differential of when the postsynaptic and presynaptic neurons for a synapse fire a spike. Some of the weight adjustment rules include Spike Timing Dependent Plasticity (STDP) and Spike Timing Dependent Delay Plasticity (STDDP). With these techniques, the weight of the synapse used to adjust the spike transmitted over the synapse will be increased if a presynaptic spike arrives before the postsynaptic spike is fired and decreased if presynaptic spike arrives after the postsynaptic spike fires. The change of the weight is determined by the duration between the arrival times of two spikes.
A computational SNN maintains three sets of electronic storage: (1) for neurons, to store each neuron's potential; (2) for synapses, including weight, delay and connections; and (3) for spikes, to keep track of the timing information of when spikes are fired at the neurons.
Described embodiments provide improved techniques for maintaining spike history information on the timing of spikes at the neurons for use in adjusting the synaptic weights in a computational neural network.